From 0550bdd093ce4d1af474ab58ec7b60201ff5de52 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Sun, 15 Jan 2006 20:13:25 +0000 Subject: [PATCH] grrr... the pipe did b0rk b0rk b0rk --- tests/treestoretest.c | 55 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/tests/treestoretest.c b/tests/treestoretest.c index 7d5b5b1e49..5ca3e14013 100644 --- a/tests/treestoretest.c +++ b/tests/treestoretest.c @@ -23,6 +23,7 @@ #include GtkTreeStore *base_model; +static gint node_count = 0; static void selection_changed (GtkTreeSelection *selection, @@ -37,11 +38,10 @@ selection_changed (GtkTreeSelection *selection, static void node_set (GtkTreeIter *iter) { - static gint i = 0; gint n; gchar *str; - str = g_strdup_printf ("Row (%d)", i++); + str = g_strdup_printf ("Row (%d)", node_count++); gtk_tree_store_set (base_model, iter, 0, str, -1); g_free (str); @@ -121,6 +121,46 @@ iter_change (GtkWidget *button, GtkTreeView *tree_view) } } +static void +iter_insert_with_values (GtkWidget *button, GtkTreeView *tree_view) +{ + GtkWidget *entry; + GtkTreeIter iter; + GtkTreeIter selected; + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); + gchar *str1, *str2; + + entry = g_object_get_data (G_OBJECT (button), "user_data"); + str1 = g_strdup_printf ("Row (%d)", node_count++); + str2 = g_strdup_printf ("%d", atoi (gtk_entry_get_text (GTK_ENTRY (entry)))); + + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)), + NULL, + &selected)) + { + gtk_tree_store_insert_with_values (GTK_TREE_STORE (model), + &iter, + &selected, + -1, + 0, str1, + 1, str2, + -1); + } + else + { + gtk_tree_store_insert_with_values (GTK_TREE_STORE (model), + &iter, + NULL, + -1, + 0, str1, + 1, str2, + -1); + } + + g_free (str1); + g_free (str2); +} + static void iter_insert_before (GtkWidget *button, GtkTreeView *tree_view) { @@ -331,6 +371,17 @@ make_window (gint view_type) g_signal_connect (button, "clicked", G_CALLBACK (iter_change), tree_view); + + button = gtk_button_new_with_label ("gtk_tree_store_insert_with_values"); + hbox = gtk_hbox_new (FALSE, 8); + entry = gtk_entry_new (); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); + g_object_set_data (G_OBJECT (button), "user_data", entry); + g_signal_connect (button, "clicked", + G_CALLBACK (iter_insert_with_values), + tree_view); button = gtk_button_new_with_label ("gtk_tree_store_insert_before"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); -- 2.30.2